struct clause {
	int k, *list;
};

struct ksat {
	int num_variables;
	int num_clauses, max_clauses;
	struct clause *clause;
};

extern struct ksat* init_ksat (void);
extern void free_ksat (struct ksat *);
extern void add_clause (struct ksat *ksat, int k, int list[k]);
extern void print_ksat (struct ksat *ksat);
